<?php

//include_once '../../Controller/Objects/Topico.php'; 
include_once 'Conexao.php';

class TopicoDataBase {
        
    public function inserir(Topico $topico){
        $conexao = new Conexao();
        $conexao->abrir();
        try {
            //$id = $topico->getId();gerado automaticamente
            $titulo=$topico->getTitulo();            
            $data=$topico->getData();
            $texto=$topico->getTexto();
            $comunidade=$topico->getComunidade()->getId();
            $autor=$topico->getAutor()->getLogin();
            $sql = "INSERT INTO tb_topico (nome,data,texto,tb_comunidade_id_comunidade,tb_perfilatleta_login) VALUES ('$titulo','$data','$texto','$comunidade','$autor')";          
            mysql_query($sql);
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
        } catch (Exception $exc) {
            throw new Exception('Erro ao inserir topico.');
        }
        $conexao->fechar();
    }
    
    
    public function excluir($id_topico){
        $conexao = new Conexao();
        $conexao->abrir();
        try {            
            $sql = "DELETE FROM tb_topico WHERE id_topico='$id_topico'"; 
             //As mensagens do topico serao excluidas pelo recurso cascata do banco
            mysql_query($sql);
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
        } catch (Exception $exc) {
            throw new Exception('Topico não encontrado.');
        }
        $conexao->fechar();           
    }
    
    public function recuperar($id_topico) {
        $conexao=new Conexao();
        $conexao->abrir();       
        try {
            $sql = "SELECT titulo FROM tb_topico WHERE id_topico ='$id_topico'";
            $resultSet = mysql_query($sql);
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
            if(mysql_num_rows($resultSet)==1){
                $resposta=true;            
            }else{
                $resposta=false;
            }            
            return $resposta;
        } catch (Exception $exc) {
            throw new Exception('Topico não encontrado.');
        }        
        $conexao->fechar();
    }
    
    public function retornarTopico($comunidade,$id_topico) { // Eliz deu alguns problemas com a URL entao ficou melhor passar o objeto comunidade
        $conexao=new Conexao();
        $conexao->abrir();
        $idComunidade = $comunidade->getId();
        
        try {
            $sql = "SELECT * FROM tb_topico WHERE id_topico ='$id_topico'";
            $resultSet = mysql_query($sql);
            if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
            if(mysql_num_rows($resultSet)==1){
                while($line=mysql_fetch_array($resultSet)){
                    $id_topico = $line['id_topico'];
                    $titulo = $line['nome'];
                    $data = $line['data'];
                    $texto = $line['texto'];
                    $tb_comunidade_id_comunidade = $line['tb_comunidade_id_comunidade'];            
                    $autor_topico = $line['tb_perfilatleta_login']; 

                    /*$sql1 = "SELECT * FROM tb_comunidade WHERE id_comunidade='$idComunidade'";
                    $rs1 = mysql_query($sql1);
                    $line1 = mysql_fetch_array($rs1);
                    $id_comunidade = $line1['id_comunidade'];
                    $nomeComunidade = $line1['nome'];
                    $descricao = $line1['descricao'];
                    $imagem = $line1['imagem'];
                    $tipoImagem = $line1['tipo_imagem'];            
                    $dono = $line1['tb_perfilatleta_login'];*/
                    

                    $sql2 = "SELECT * FROM tb_perfilatleta WHERE login='$autor_topico'"; //Eliz precisa ser o autor do topico e não o dono da comunidade
                    $rs2 = mysql_query($sql2);
                    if (mysql_error($conexao->getCon())) {
                        throw new Exception ();            
                    }
                    $line2 = mysql_fetch_array($rs2);
                    $pA = new PerfilAtleta($line2['login'], $line2['senha'], $line2['status'], $line2['codigoValidacao']);

                    //$comunidade = new Comunidade($id_comunidade, $nomeComunidade, $descricao, $imagem, $tipoImagem, $pA);
                    
                    $topico = new Topico($id_topico, $titulo, $texto, $pA, $data, $comunidade);
                    return $topico;      
                }
                }else{
                throw new Exception('Tópico não encontrado.');
                }
        } catch (Exception $exc) {
            throw new Exception('Nao foi possivel realizar a consulta.');
        }  
            $conexao->fechar();
    }       
    
    
    public function listarTopicos(Comunidade $comunidade) {
        $conexao=new Conexao();
        $conexao->abrir();
        $array = array();
       
       try {
           $id= $comunidade->getId();
           $sql = "SELECT * FROM tb_topico WHERE tb_comunidade_id_comunidade = '$id'";
           $rs = mysql_query($sql);
           if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
            }
           while($line=mysql_fetch_array($rs)){
                $id_topico = $line['id_topico'];
                $nome = $line['nome'];
                $data = $line['data'];
                $texto = $line['texto'];
                $tb_comunidade_id_comunidade = $line['tb_comunidade_id_comunidade'];            
                $autor_topico = $line['tb_perfilatleta_login']; 
                
                $sql2 = "SELECT * FROM tb_perfilatleta WHERE login='$autor_topico'";
                $rs2 = mysql_query($sql2);
                if (mysql_error($conexao->getCon())) {
                throw new Exception ();            
                }
                $line2 = mysql_fetch_array($rs2);
                $pA = new PerfilAtleta($line2['login'], $line2['senha'], $line2['status'], $line2['codigoValidacao']);
                
                $topico= new Topico($id_topico, $nome, $texto, $pA, $data, $comunidade);
                array_push($array, $topico);                  
           }
           return $array;
       } catch (Exception $e) {
           throw new Exception('Não foi possível realizar a consulta.');
       }
        $conexao->fechar();
        
    }
}

?>
